﻿using System;
using System.Collections.Generic;
using System.Web.UI.WebControls;
using TimeTracker.Core.Domain.Entities;
using TimeTracker.Web.Admin.Interface;
using TimeTracker.Web.Admin.Presenter;

namespace TimeTracker.Web.Admin
{
    public partial class GlavnaPloca : System.Web.UI.Page, IGlavnaPlocaView
    {
        private GlavnaPlocaPresenter _presenter;

        protected void Page_Load(object sender, EventArgs e)
        {
            _presenter = new GlavnaPlocaPresenter();

            if (!IsPostBack)
            {
                _presenter.Init(this);
            }
        }

        public void PokaziOrganizacioneSeme(IList<OrganizacionaSema> organizacioneSeme)
        {
            gvOrganizacioneSeme.DataSource = organizacioneSeme;
            gvOrganizacioneSeme.DataBind();
        }

        protected void GridViewOrganizacioneSeme_OnRowCommand(object sender, GridViewCommandEventArgs e)
        {
            if(e.CommandName.Equals("Dodaj"))
            {
                var imeSeme = (TextBox) gvOrganizacioneSeme.FooterRow.FindControl("tbNovoImeOrganizacioneSeme");
                _presenter.DodajOrganizacionuSemu(imeSeme.Text);
                _presenter.Init(this);
            }
            if(e.CommandName.Equals("Otkazi"))
            {
                gvOrganizacioneSeme.EditIndex = -1;
            }
        }

        protected void GridViewOrganizacioneSeme_OnRowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            var orgSemaId = Convert.ToInt32(gvOrganizacioneSeme.DataKeys[e.RowIndex].Values[0].ToString());
            _presenter.ObrisiOrganizacionuSemu(orgSemaId);
            _presenter.Init(this);
        }

        protected void GridViewOrganizacioneSeme_OnRowEditing(object sender, GridViewEditEventArgs e)
        {
            gvOrganizacioneSeme.EditIndex = e.NewEditIndex;
            _presenter.Init(this);
        }

        protected void GridViewOrganizacioneSeme_OnRowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            gvOrganizacioneSeme.EditIndex = -1;
            _presenter.Init(this);
        }

        protected void GridViewOrganizacioneSeme_OnRowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            var orgSemaId = (int)gvOrganizacioneSeme.DataKeys[e.RowIndex].Value;

            var imeOrganizacioneSeme = (TextBox)gvOrganizacioneSeme.Rows[e.RowIndex].FindControl("tbImeOrganizacioneSeme");
            
            _presenter.AzurirajOrganizacionuSemu(orgSemaId, imeOrganizacioneSeme.Text);

            gvOrganizacioneSeme.EditIndex = -1;
        }
    }
}
